{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 使用numpy来生成200个点\n",
    "x_data = np.linspace(-0.5, 0.5, 200)[:,np.newaxis]\n",
    "noise = np.random.normal(0, 0.02, x_data.shape)\n",
    "y_data = np.square(x_data) + noise # 样本\n",
    "\n",
    "# 定义2个placeholder\n",
    "x = tf.placeholder(tf.float32, [None, 1])\n",
    "y = tf.placeholder(tf.float32, [None, 1])\n",
    "\n",
    "# 定义神经网络的中间层\n",
    "Weights_L1 = tf.Variable(tf.random_normal([1, 10]))\n",
    "biases_L1 = tf.Variable(tf.zeros([1, 10]))\n",
    "Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + biases_L1\n",
    "L1 = tf.nn.tanh(Wx_plus_b_L1)\n",
    "\n",
    "# 定义神经网络输出层\n",
    "Weights_L2 = tf.Variable(tf.random_normal([10, 1]))\n",
    "biases_L2 = tf.Variable(tf.zeros([1,1]))\n",
    "Wx_plus_b_L2 = tf.matmul(L1, Weights_L2) + biases_L2\n",
    "prediction = tf.nn.tanh(Wx_plus_b_L2)\n",
    "\n",
    "# 二次代价函数\n",
    "loss = tf.reduce_mean(tf.square(y - prediction))\n",
    "# 使用梯度下降法\n",
    "train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    \n",
    "    #变量初始化\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    for _ in range(2000):\n",
    "        sess.run(train_step, feed_dict={x : x_data, y : y_data})\n",
    "        \n",
    "    # 获得预测值\n",
    "    prediction_value = sess.run(prediction, feed_dict={x : x_data})\n",
    "    plt.figure()\n",
    "    plt.scatter(x_data, y_data)\n",
    "    plt.plot(x_data, prediction_value, \"r-\", lw=5)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
